#一
"""
编写程序，实现从键盘输入一个字符串，去重后按字符升序输出
"""
strs = input('请输入一个字符串:')
setStrs = set(strs)
listStrs = list(setStrs)
print(listStrs)
listStrs.sort()
for s in listStrs:
    print(s,end='')

    """
    2、下面程序的功能是：解决买水问题，输入钱数，输出可买水的瓶数。规则如下：1元钱可以买1瓶水，2个空瓶可以换1瓶水，3个瓶盖也可以换1瓶水。请找出错误并修改验证。
    """
    # 错误代码
    # Water = int(input('请输入钱数：'))
    # # 定义买水的函数，nW 表示新水的数量，nB 表示新瓶的数量，nL 表示新盖的数量
    # def f(nW, nB, nL):
    #     global Water, bottle, lid
    #     bottle = nB + nW
    #     lid = nL + nW
    #     nW = bottle // 2 + lid
    #     Water += nW
    #     bottle = bottle %
    #     lid = lid % 3
    #     if (nB < 2 or nL < 3 or nW < 1):
    #         return
    #     else:
    #         f(nW, nB, nL)
    # f(Water, 0, 0)
    # print(Water)
    # 正确代码
    Water = int(input('请输入钱数：'))
#二
    # 定义买水的函数，nW 表示新水的数量，nB 表示新瓶的数量，nL 表示新盖的数量
    def f(nW, nB, nL):
        global Water, bottle, lid
        bottle = nB + nW
        lid = nL + nW
        nW = bottle // 2 + lid // 3
        Water += nW
        nB = bottle % 2
        nL = lid % 3
        if (nB < 2 and nL < 3 and nW < 1):
            return
        else:
            f(nW, nB, nL)


    f(Water, 0, 0)
    print(Water)
    """
    以3瓶为例：
    第一轮兑换：
    空瓶：3÷2=1瓶水（余1空瓶）
    瓶盖：3÷3=1瓶水（余0瓶盖）
    共换得2瓶水
    喝完后：1+2=3个空瓶 + 0+2=2个瓶盖
    累计：3+2=5瓶

    第二轮兑换：
    空瓶：3÷2=1瓶水（余1空瓶）
    瓶盖：2÷3=0瓶水（余2瓶盖）
    共换得1瓶水
    喝完后：1+1=2个空瓶 + 2+1=3个瓶盖
    累计：5+1=6瓶

    第三轮兑换：
    空瓶：2÷2=1瓶水（余0空瓶）
    瓶盖：3÷3=1瓶水（余0瓶盖）
    共换得2瓶水
    喝完后：0+2=2个空瓶 + 0+2=2个瓶盖
    累计：6+2=8瓶

    第四轮兑换：
    空瓶：2÷2=1瓶水（余0空瓶）
    瓶盖：2÷3=0瓶水（余2瓶盖）
    共换得1瓶水
    喝完后：0+1=1个空瓶 + 2+1=3个瓶盖
    累计：8+1=9瓶

    第五轮兑换：
    空瓶：1÷2=0瓶水（余1空瓶）
    瓶盖：3÷3=1瓶水（余0瓶盖）
    共换得1瓶水
    喝完后：1+1=2个空瓶 + 0+1=1个瓶盖
    累计：9+1=10瓶

    第六轮兑换：
    空瓶：2÷2=1瓶水（余0空瓶）
    瓶盖：1÷3=0瓶水（余1瓶盖）
    共换得1瓶水
    喝完后：0+1=1个空瓶 + 1+1=2个瓶盖
    累计：10+1=11瓶
    """